// components/home/home.js
Component({

  /**
   * 组件的属性列表
   */
  properties: {

  },

  /**
   * 组件的初始数据
   */
  data: {
		imgJudge: 0,
		text:"",
		scale: 0,
		translate: [180,200],
        angle: 90,
        message: '',
        openid:'',
        textIndex: 0,
        textArray: [
            "河北经贸大学",
            "一餐",
            "图书馆",
            "考试",
            "放假",
            "综测相关",
            "课程信息",
            "猜你想问",
            ],
        text: "猜你想问",
        isInputFocused: false, // 用于判断输入框是否获得焦点
        content: [

            {
                id: 0,
                text: "你好"
            },
            {
                id: 1,
                text: "你好啊！有什么可以帮助你的吗？"
            },
            {
                id: 0,
                text: "河北经贸大学"
            },
            {
                id: 1,
                text: "河北经贸大学（Hebei University of Economics and Business）是一所位于中国河北省的综合性大学，专注于经济学和商业管理等领域的教育与研究。该校拥有多个学科专业，涵盖经济学、管理学、法学、文学等多个领域，致力于为学生提供全面的教育背景和学术资源。如果你对该校有更具体的问题或需要了解更多信息，可以告诉我，我会尽力帮助你。"
            },
            {
                id: 0,
                text: "学校的京东快递在哪里"
            },
            {
                id: 1,
                text: "京东快递点位于一餐旁边的小木屋，菜鸟驿站领完快递后它出口的前面"
            },
            {
                id: 0,
                text: "我不想上课"
            },
            {
                id: 1,
                text: "有时候确实会觉得上课有些烦人，但教育是很重要的一部分。当你感到疲惫或者有压力的时候，尝试一些放松的活动可以有所帮助。呼吸练习、冥想、散步或者听一些舒缓的音乐都是缓解压力的好方法。同时，找到可以倾诉的人也很重要，这可以是家人、朋友或者心理健康专业人士。如果你感到需要更深入的支持，可以考虑寻求心理健康专业人士的帮助，他们能够为你提供更专业的心理疏导和支持。记住，关注自己的心理健康是非常重要的"
            },
            {
                id: 0,
                text: "我能问一些什么"
            },
            {
                id: 1,
                text: "你可以问几乎任何你感兴趣的问题！无论是关于学业、兴趣爱好、文化、科学、技术、娱乐等等，只要你想知道的，尽管问吧。我会尽力提供相关的信息和帮助。"
            },
            {
                id: 0,
                text: "给我讲讲时空智能模型"
            },
            {
                id: 1,
                text: "时空智能模型是一种用于处理时空数据的模型，它结合了时间和空间信息，可以用于预测、分类、分析和理解与时间和空间相关的事件、趋势或模式。这种模型通常用于处理涉及时间和地理位置的数据，比如气象数据、交通流量、地理信息系统（GIS）数据、金融市场数据等。它们可以用于预测未来的趋势、分析时间序列数据的模式、发现空间相关性以及进行空间数据的分类或聚类等任务。时空智能模型可以采用各种技术，例如循环神经网络（RNN）、长短期记忆网络（LSTM）、卷积神经网络（CNN）、时空图神经网络（ST-GCN）等，这些技术有助于模型更好地捕捉时间和空间的相关性，提高模型对时空数据的建模能力。               这种模型在许多领域都有应用，包括交通规划、气象预测、金融市场分析、环境监测等。通过结合时间和空间信息，时空智能模型能够更准确地理解和预测复杂的现实世界中的事件和变化。"
            }
        ],//聊天信息
        photo: "/images/logo.jpg"
  },

  /**
   * 组件的方法列表
   */
  
  methods: {
        // 输入框获得焦点时，停止文本轮播
        stopAnimation() {
            this.setData({
            isInputFocused: true
            });
        },
        // 输入框失去焦点时，恢复文本轮播
        startAnimation() {
            this.setData({
            isInputFocused: false
            });
        },
        sendJudge(){
            var text = this.data.text;
            if(text != null && text != ""){
				this.setData({
					imgJudge: 1
				})
			}else{
				this.setData({
					imgJudge: 0
				})
			}
        },
		 /**
         * 判断发送键是否可用
         */
        input(e){
            var text = e.detail.value;
            this.setData({
                text
            });
            this.sendJudge();
        },
        
        /**
         * 点击发送按钮
         */
        send(){
            const userInput = this.data.text; // 获取用户输入的文本内容
            // this.setData({
            //     text: "" // 清空文本输入框
            // });
            // 假设有一个问题-答案的映射关系
            const questionAnswerMap = {
                "河北经贸大学": "河北经贸大学（Hebei University of Economics and Business）是一所位于中国河北省的综合性大学，专注于经济学和商业管理等领域的教育与研究。该校拥有多个学科专业，涵盖经济学、管理学、法学、文学等多个领域，致力于为学生提供全面的教育背景和学术资源。如果你对该校有更具体的问题或需要了解更多信息，可以告诉我，我会尽力帮助你。",
                "河贝经贸大学": "河北经贸大学（Hebei University of Economics and Business）是一所位于中国河北省的综合性大学，专注于经济学和商业管理等领域的教育与研究。该校拥有多个学科专业，涵盖经济学、管理学、法学、文学等多个领域，致力于为学生提供全面的教育背景和学术资源。如果你对该校有更具体的问题或需要了解更多信息，可以告诉我，我会尽力帮助你。",
                "一餐": "一餐就餐地点在西门附近，快递点旁边",
                "说说你自己": "我是一个由人工智能技术构建的语言模型，被设计成可以与人交流、提供信息、解答问题以及给予建议。我能处理各种主题，包括科学、历史、文化、技术等等。我的目标是帮助人们解决问题，提供有用的信息，并尽可能支持各种学习和娱乐需求。如果有什么可以帮到你的，不妨告诉我！",
                "考试时间": "一般在教学周第17周过后，半个月内，这次是在12.18-12.30",
                "图书馆": "图书馆是一个非常宝贵的资源中心，里面收藏着各种书籍、期刊、报纸、电子资源和其他资料，供人们阅读、学习和研究使用。它们不仅提供知识和信息，也是社区交流和学术研究的场所。",
                "我想了解今天的天起": "抱歉，我无法提供实时天气信息。你可以尝试使用天气预报网站或者应用程序，输入你所在的城市或地区，获取当天的天气预报。",
                "我想了解今天的天气": "抱歉，我无法提供实时天气信息。你可以尝试使用天气预报网站或者应用程序，输入你所在的城市或地区，获取当天的天气预报。",
                "如何做毕业设计": "1. 选择主题，2. 制定计划，3. 研究和调研，4. 创造性工作，5. 数据分析和总结，6. 完成和提交，7. 展示/答辩（如果需要）",
                // 其他问题和对应答案的映射
                "default": "抱歉，暂时无法回答你的问题。"
            };
        
            // 根据用户输入的问题查找对应的答案
            const answer = questionAnswerMap[userInput] || questionAnswerMap["default"];

            if (answer) {
                // 更新 content 数组，将用户输入的问题和对应的答案添加到数组中
                const newContent = this.data.content.concat([
                    { id: 0, text: userInput }, // 用户发送的问题
                    { id: 1, text: answer }    // 对应的自动生成的答案
                ]);
                console.log("自动生成的回答：", answer); // 输出自动生成的回答到控制台
                // 更新 content 数组
                this.setData({
                    content: newContent,
                    text: "" // 清空输入框
                }, () => {
                    wx.nextTick(() => {
                        wx.pageScrollTo({
                            scrollTop: -9999, // 设置一个足够大的值，确保能滚动到底部
                            duration: 300 // 滚动动画时长，单位为毫秒
                        });
                    });
                });

                // setTimeout(() => {
                //     const query = wx.createSelectorQuery().in(this); // 创建选择器查询对象
                //     query.select('#view_q_a').boundingClientRect(); // 选择要查询的节点，这里假设输入框的id为inputText
                //     query.selectViewport().scrollOffset(); // 获取页面滚动位置
            
                //     query.exec((res) => {
                //         const inputRect = res[0]; // 获取输入框节点信息
                //         const scrollOffset = res[1]; // 获取滚动位置信息
            
                //         // 计算将输入框滚动到可视区域的距离
                //         const distance = inputRect.bottom + scrollOffset.scrollTop - wx.getSystemInfoSync().windowHeight;
            
                //         if (distance > 0) {
                //             // 将输入框滚动到可视区域内
                //             wx.pageScrollTo({
                //                 scrollTop: distance
                //             });
                //         }
                //     });
                // }, 100);
            }
            else {
                console.log("暂无匹配的回答"); // 如果找不到对应的答案，输出提示信息到控制台
            }
        },
        

		/**
		 * 提示
		 */
		tip(){
			var angle = this.data.angle;
			var scale = this.data.scale;
			var translate = this.data.translate;
			this.animation_rotate.rotate(angle).step();
			this.animation_scale.scale(scale).translate(translate[0],translate[1]).step();
			if (scale == 0) {
				scale = 1;
				translate = [0,0];
				angle = 0;
			}
			else {
				scale = 0;
				translate = [180,200];
				angle = 90;
			}
			this.setData({
				animation_rotate: this.animation_rotate.export(),
				animation_scale: this.animation_scale.export(),
				scale,
				translate,
				angle
			})
		}
	},
	
	/**
	 * 生命周期函数-组件被调用
	 */
	attached(){
        this.textInterval = setInterval(() => {
            if (!this.data.isInputFocused) {
            const currentIndex = this.data.textIndex;
            const nextIndex = (currentIndex + 1) % this.data.textArray.length;
            this.setData({
              textIndex: nextIndex,
              text: this.data.textArray[nextIndex]
            });}
          }, 4000);
        wx.cloud.callFunction({
            name: "loginopenid"
        }).then(res=>{
            console.log(res.result.openid);
        })
		this.animation_rotate = wx.createAnimation();
		this.animation_scale = wx.createAnimation();
    },
    detached() {
        // 在组件销毁时清除定时器，避免内存泄漏
        clearInterval(this.textInterval);
      }
    
})